package com.harmony.pilot.common.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * GN构建信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BuildInfo implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * BUILD.gn文件路径
     */
    private String buildFilePath;
    
    /**
     * 目标名称
     */
    private String targetName;
    
    /**
     * 目标类型（executable, shared_library, static_library等）
     */
    private String targetType;
    
    /**
     * 源文件列表
     */
    private List<String> sources;
    
    /**
     * 依赖列表
     */
    private List<String> deps;
    
    /**
     * 包含路径
     */
    private List<String> includeDirs;
    
    /**
     * 编译选项
     */
    private List<String> cflags;
    
    /**
     * C++编译选项
     */
    private List<String> cxxflags;
    
    /**
     * 链接选项
     */
    private List<String> ldflags;
    
    /**
     * 定义的宏
     */
    private Map<String, String> defines;
    
    /**
     * 公共配置
     */
    private List<String> publicConfigs;
    
    /**
     * 所有配置
     */
    private List<String> allDependentConfigs;
}

